import BN from "bn.js";
import { Address } from "web3x-es/address";
import { EventLog, TransactionReceipt } from "web3x-es/formatters";
import { Contract, ContractOptions, TxCall, TxSend, EventSubscriptionFactory } from "web3x-es/contract";
import { Eth } from "web3x-es/eth";
import abi from "./MarketplaceAbi";
export type OrderCreatedEvent = {
    id: string;
    assetId: string;
    seller: Address;
    nftAddress: Address;
    priceInWei: string;
    expiresAt: string;
};
export type OrderSuccessfulEvent = {
    id: string;
    assetId: string;
    seller: Address;
    nftAddress: Address;
    totalPrice: string;
    buyer: Address;
};
export type OrderCancelledEvent = {
    id: string;
    assetId: string;
    seller: Address;
    nftAddress: Address;
};
export type ChangedPublicationFeeEvent = {
    publicationFee: string;
};
export type ChangedOwnerCutPerMillionEvent = {
    ownerCutPerMillion: string;
};
export type ChangeLegacyNFTAddressEvent = {
    legacyNFTAddress: Address;
};
export type AuctionCreatedEvent = {
    id: string;
    assetId: string;
    seller: Address;
    priceInWei: string;
    expiresAt: string;
};
export type AuctionSuccessfulEvent = {
    id: string;
    assetId: string;
    seller: Address;
    totalPrice: string;
    winner: Address;
};
export type AuctionCancelledEvent = {
    id: string;
    assetId: string;
    seller: Address;
};
export type PauseEvent = {};
export type UnpauseEvent = {};
export type OwnershipTransferredEvent = {
    previousOwner: Address;
    newOwner: Address;
};
export type MigratedEvent = {
    contractName: string;
    migrationId: string;
};
export interface OrderCreatedEventLog extends EventLog<OrderCreatedEvent, "OrderCreated"> {
}
export interface OrderSuccessfulEventLog extends EventLog<OrderSuccessfulEvent, "OrderSuccessful"> {
}
export interface OrderCancelledEventLog extends EventLog<OrderCancelledEvent, "OrderCancelled"> {
}
export interface ChangedPublicationFeeEventLog extends EventLog<ChangedPublicationFeeEvent, "ChangedPublicationFee"> {
}
export interface ChangedOwnerCutPerMillionEventLog extends EventLog<ChangedOwnerCutPerMillionEvent, "ChangedOwnerCutPerMillion"> {
}
export interface ChangeLegacyNFTAddressEventLog extends EventLog<ChangeLegacyNFTAddressEvent, "ChangeLegacyNFTAddress"> {
}
export interface AuctionCreatedEventLog extends EventLog<AuctionCreatedEvent, "AuctionCreated"> {
}
export interface AuctionSuccessfulEventLog extends EventLog<AuctionSuccessfulEvent, "AuctionSuccessful"> {
}
export interface AuctionCancelledEventLog extends EventLog<AuctionCancelledEvent, "AuctionCancelled"> {
}
export interface PauseEventLog extends EventLog<PauseEvent, "Pause"> {
}
export interface UnpauseEventLog extends EventLog<UnpauseEvent, "Unpause"> {
}
export interface OwnershipTransferredEventLog extends EventLog<OwnershipTransferredEvent, "OwnershipTransferred"> {
}
export interface MigratedEventLog extends EventLog<MigratedEvent, "Migrated"> {
}
interface MarketplaceEvents {
    OrderCreated: EventSubscriptionFactory<OrderCreatedEventLog>;
    OrderSuccessful: EventSubscriptionFactory<OrderSuccessfulEventLog>;
    OrderCancelled: EventSubscriptionFactory<OrderCancelledEventLog>;
    ChangedPublicationFee: EventSubscriptionFactory<ChangedPublicationFeeEventLog>;
    ChangedOwnerCutPerMillion: EventSubscriptionFactory<ChangedOwnerCutPerMillionEventLog>;
    ChangeLegacyNFTAddress: EventSubscriptionFactory<ChangeLegacyNFTAddressEventLog>;
    AuctionCreated: EventSubscriptionFactory<AuctionCreatedEventLog>;
    AuctionSuccessful: EventSubscriptionFactory<AuctionSuccessfulEventLog>;
    AuctionCancelled: EventSubscriptionFactory<AuctionCancelledEventLog>;
    Pause: EventSubscriptionFactory<PauseEventLog>;
    Unpause: EventSubscriptionFactory<UnpauseEventLog>;
    OwnershipTransferred: EventSubscriptionFactory<OwnershipTransferredEventLog>;
    Migrated: EventSubscriptionFactory<MigratedEventLog>;
}
interface MarketplaceEventLogs {
    OrderCreated: OrderCreatedEventLog;
    OrderSuccessful: OrderSuccessfulEventLog;
    OrderCancelled: OrderCancelledEventLog;
    ChangedPublicationFee: ChangedPublicationFeeEventLog;
    ChangedOwnerCutPerMillion: ChangedOwnerCutPerMillionEventLog;
    ChangeLegacyNFTAddress: ChangeLegacyNFTAddressEventLog;
    AuctionCreated: AuctionCreatedEventLog;
    AuctionSuccessful: AuctionSuccessfulEventLog;
    AuctionCancelled: AuctionCancelledEventLog;
    Pause: PauseEventLog;
    Unpause: UnpauseEventLog;
    OwnershipTransferred: OwnershipTransferredEventLog;
    Migrated: MigratedEventLog;
}
interface MarketplaceTxEventLogs {
    OrderCreated: OrderCreatedEventLog[];
    OrderSuccessful: OrderSuccessfulEventLog[];
    OrderCancelled: OrderCancelledEventLog[];
    ChangedPublicationFee: ChangedPublicationFeeEventLog[];
    ChangedOwnerCutPerMillion: ChangedOwnerCutPerMillionEventLog[];
    ChangeLegacyNFTAddress: ChangeLegacyNFTAddressEventLog[];
    AuctionCreated: AuctionCreatedEventLog[];
    AuctionSuccessful: AuctionSuccessfulEventLog[];
    AuctionCancelled: AuctionCancelledEventLog[];
    Pause: PauseEventLog[];
    Unpause: UnpauseEventLog[];
    OwnershipTransferred: OwnershipTransferredEventLog[];
    Migrated: MigratedEventLog[];
}
export interface MarketplaceTransactionReceipt extends TransactionReceipt<MarketplaceTxEventLogs> {
}
interface MarketplaceMethods {
    setOwnerCutPerMillion(_ownerCutPerMillion: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    setLegacyNFTAddress(_legacyNFTAddress: Address): TxSend<MarketplaceTransactionReceipt>;
    ERC721_Interface(): TxCall<string>;
    InterfaceId_ValidateFingerprint(): TxCall<string>;
    unpause(): TxSend<MarketplaceTransactionReceipt>;
    acceptedToken(): TxCall<Address>;
    cancelOrder(assetId: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    paused(): TxCall<boolean>;
    cancelOrder(nftAddress: Address, assetId: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    createOrder(nftAddress: Address, assetId: number | string | BN, priceInWei: number | string | BN, expiresAt: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    initialize(): TxSend<MarketplaceTransactionReceipt>;
    pause(): TxSend<MarketplaceTransactionReceipt>;
    owner(): TxCall<Address>;
    safeExecuteOrder(nftAddress: Address, assetId: number | string | BN, price: number | string | BN, fingerprint: string): TxSend<MarketplaceTransactionReceipt>;
    ownerCutPerMillion(): TxCall<string>;
    createOrder(assetId: number | string | BN, priceInWei: number | string | BN, expiresAt: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    publicationFeeInWei(): TxCall<string>;
    executeOrder(nftAddress: Address, assetId: number | string | BN, price: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    setPublicationFee(_publicationFee: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    isMigrated(contractName: string, migrationId: string): TxCall<boolean>;
    initialize(_acceptedToken: Address, _legacyNFTAddress: Address, _owner: Address): TxSend<MarketplaceTransactionReceipt>;
    initialize(_sender: Address): TxSend<MarketplaceTransactionReceipt>;
    legacyNFTAddress(): TxCall<Address>;
    auctionByAssetId(assetId: number | string | BN): TxCall<{
        0: string;
        1: Address;
        2: string;
        3: string;
    }>;
    orderByAssetId(a0: Address, a1: number | string | BN): TxCall<{
        "id": string;
        0: string;
        "seller": Address;
        1: Address;
        "nftAddress": Address;
        2: Address;
        "price": string;
        3: string;
        "expiresAt": string;
        4: string;
    }>;
    executeOrder(assetId: number | string | BN, price: number | string | BN): TxSend<MarketplaceTransactionReceipt>;
    transferOwnership(newOwner: Address): TxSend<MarketplaceTransactionReceipt>;
}
export interface MarketplaceDefinition {
    methods: MarketplaceMethods;
    events: MarketplaceEvents;
    eventLogs: MarketplaceEventLogs;
}
export class Marketplace extends Contract<MarketplaceDefinition> {
    constructor(eth: Eth, address?: Address, options?: ContractOptions) {
        super(eth, abi, address, options);
    }
    deploy(): TxSend<MarketplaceTransactionReceipt> {
        return super.deployBytecode("0x60806040526001805460a060020a60ff021916905534801561002057600080fd5b50612f4a806100306000396000f3006080604052600436106101455763ffffffff60e060020a60003504166319dad16d811461014a5780631b357750146101645780632b4c32be1461018557806337f82f37146101cc5780633f4ba83a146101e1578063451c3d80146101f6578063514fcac7146102275780635c975abb1461023f5780636a206137146102685780636f652e1a1461028c5780638129fc1c146102b65780638456cb59146102cb5780638da5cb5b146102e05780639b214f77146102f5578063a01f79d414610361578063a1ba444d14610388578063ae4f1198146103a6578063ae7b0333146103bb578063af8996f1146103e2578063c0bac1a8146103fa578063c0c53b8b14610491578063c4d66de8146104be578063d6b26813146104df578063d7b40107146104f4578063e61f38511461053a578063ef46e0ca14610595578063f2fde38b146105b0575b600080fd5b34801561015657600080fd5b506101626004356105d1565b005b34801561017057600080fd5b50610162600160a060020a03600435166106a3565b34801561019157600080fd5b5061019a610713565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156101d857600080fd5b5061019a610737565b3480156101ed57600080fd5b5061016261076c565b34801561020257600080fd5b5061020b6107e4565b60408051600160a060020a039092168252519081900360200190f35b34801561023357600080fd5b506101626004356107f3565b34801561024b57600080fd5b50610254610875565b604080519115158252519081900360200190f35b34801561027457600080fd5b50610162600160a060020a0360043516602435610885565b34801561029857600080fd5b50610162600160a060020a03600435166024356044356064356108ab565b3480156102c257600080fd5b506101626108d4565b3480156102d757600080fd5b50610162610c21565b3480156102ec57600080fd5b5061020b610c9e565b34801561030157600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261016294600160a060020a038135169460248035956044359536956084949301918190840183828082843750949750610cad9650505050505050565b34801561036d57600080fd5b50610376610cd7565b60408051918252519081900360200190f35b34801561039457600080fd5b50610162600435602435604435610cdd565b3480156103b257600080fd5b50610376610dc4565b3480156103c757600080fd5b50610162600160a060020a0360043516602435604435610dca565b3480156103ee57600080fd5b50610162600435610dfd565b34801561040657600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261025494369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610e4f9650505050505050565b34801561049d57600080fd5b50610162600160a060020a0360043581169060243581169060443516610f18565b3480156104ca57600080fd5b50610162600160a060020a03600435166113a1565b3480156104eb57600080fd5b5061020b6116f8565b34801561050057600080fd5b5061050c600435611707565b60408051948552600160a060020a039093166020850152838301919091526060830152519081900360800190f35b34801561054657600080fd5b5061055e600160a060020a036004351660243561178f565b60408051958652600160a060020a039485166020870152929093168483015260608401526080830191909152519081900360a00190f35b3480156105a157600080fd5b506101626004356024356117d2565b3480156105bc57600080fd5b50610162600160a060020a0360043516611873565b600154600160a060020a031633146105e857600080fd5b620f42408110610668576040805160e560020a62461bcd02815260206004820152602d60248201527f546865206f776e6572206375742073686f756c64206265206265747765656e2060448201527f3020616e64203939392c39393900000000000000000000000000000000000000606482015290519081900360840190fd5b60048190556040805182815290517ffa406a120a9e7f2b332bfb7a43d3bf1c3f079262202907a6b69c94b2821a02c69181900360200190a150565b600154600160a060020a031633146106ba57600080fd5b6106c3816118fb565b60068054600160a060020a031916600160a060020a0383811691909117918290556040519116907f6e65d1b616d558dd96db7a58e31a954d28d47d57d568e7d7fc7819803878928f90600090a250565b7f80ac58cd0000000000000000000000000000000000000000000000000000000081565b604080517f76657269667946696e6765727072696e742875696e743235362c6279746573298152905190819003602001902081565b600154600160a060020a0316331461078357600080fd5b60015460a060020a900460ff16151561079b57600080fd5b6001805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600254600160a060020a031681565b6107fb612eb0565b60015460a060020a900460ff161561081257600080fd5b60065461082890600160a060020a031683611abb565b60208082015182516040805191825251939450600160a060020a039091169285927f88bd2ba46f3dc2567144331c35bd4c5ced3d547d8828638a152ddd9591c137a6928290030190a35050565b60015460a060020a900460ff1681565b60015460a060020a900460ff161561089c57600080fd5b6108a68282611abb565b505050565b60015460a060020a900460ff16156108c257600080fd5b6108ce84848484611cb2565b50505050565b6040805190810160405280600a81526020017f4d696772617461626c65000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e322e3100000000000000000000000000000000000000000000000000000081525061096d826040805190810160405280600b8152602001600080516020612eff833981519152815250612358565b6109778282612358565b600080516020612edf8339815191528282604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156109c95781810151838201526020016109b1565b50505050905090810190601f1680156109f65780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610a29578181015183820152602001610a11565b50505050905090810190601f168015610a565780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b60208310610a995780518252601f199092019160209182019101610a7a565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310610af55780518252601f199092019160209182019101610ad6565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420805460ff19169515159590951790945550508351600192600092869290918291908401908083835b60208310610b675780518252601f199092019160209182019101610b48565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b808752600080516020612eff83398151915293870193845291519095945092508291908083835b60208310610be05780518252601f199092019160209182019101610bc1565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220805460ff19169315159390931790925550505050565b600154600160a060020a03163314610c3857600080fd5b60015460a060020a900460ff1615610c4f57600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600154600160a060020a031681565b60015460a060020a900460ff1615610cc457600080fd5b610cd0848484846123dd565b5050505050565b60045481565b610ce5612eb0565b60015460a060020a900460ff1615610cfc57600080fd5b600654610d1490600160a060020a0316858585611cb2565b50600654600160a060020a039081166000908152600360208181526040808420888552825292839020835160a0810185528154808252600183015487168285018190526002840154909716828701529382015460608083018290526004909301546080830181905286519586529385015283850192909252925190939287927f9493ae82b9872af74473effb9d302efba34e0df360a99cc5e577cd3f28e3cab2929081900390910190a350505050565b60055481565b60015460a060020a900460ff1615610de157600080fd5b6108ce83838360206040519081016040528060008152506123dd565b600154600160a060020a03163314610e1457600080fd5b60058190556040805182815290517fe7fa8737293f41b5dfa0d5c3e552860a06275bed7015581b083c7be7003308ba9181900360200190a150565b600080836040518082805190602001908083835b60208310610e825780518252601f199092019160209182019101610e63565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310610ede5780518252601f199092019160209182019101610ebf565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205460ff16925050505b92915050565b6040805190810160405280600b81526020017f4d61726b6574706c6163650000000000000000000000000000000000000000008152506040805190810160405280600581526020017f302e302e31000000000000000000000000000000000000000000000000000000815250610fb1826040805190810160405280600b8152602001600080516020612eff833981519152815250612358565b610fbb8282612358565b600160a060020a038316151561101b576040805160e560020a62461bcd02815260206004820152600d60248201527f496e76616c6964206f776e657200000000000000000000000000000000000000604482015290519081900360640190fd5b611024836113a1565b61103685600160a060020a0316612d39565b15156110b2576040805160e560020a62461bcd02815260206004820152603660248201527f54686520616363657074656420746f6b656e2061646472657373206d7573742060448201527f62652061206465706c6f79656420636f6e747261637400000000000000000000606482015290519081900360840190fd5b60028054600160a060020a031916600160a060020a0387161790556110d6846118fb565b60068054600160a060020a031916600160a060020a038616179055604080518181528351918101919091528251600080516020612edf8339815191529184918491908190602080830191606084019187019080838360005b8381101561114657818101518382015260200161112e565b50505050905090810190601f1680156111735780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111a657818101518382015260200161118e565b50505050905090810190601f1680156111d35780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b602083106112165780518252601f1990920191602091820191016111f7565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b602083106112725780518252601f199092019160209182019101611253565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420805460ff19169515159590951790945550508351600192600092869290918291908401908083835b602083106112e45780518252601f1990920191602091820191016112c5565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b808752600080516020612eff83398151915293870193845291519095945092508291908083835b6020831061135d5780518252601f19909201916020918201910161133e565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220805460ff19169315159390931790925550505050505050565b6040805190810160405280600881526020017f5061757361626c650000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e3000000000000000000000000000000000000000000000000000000081525061143a826040805190810160405280600b8152602001600080516020612eff833981519152815250612358565b6114448282612358565b61144d83612d41565b600080516020612edf8339815191528282604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561149f578181015183820152602001611487565b50505050905090810190601f1680156114cc5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156114ff5781810151838201526020016114e7565b50505050905090810190601f16801561152c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b6020831061156f5780518252601f199092019160209182019101611550565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420805460ff19169515159590951790945550508351600192600092869290918291908401908083835b6020831061163d5780518252601f19909201916020918201910161161e565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b808752600080516020612eff83398151915293870193845291519095945092508291908083835b602083106116b65780518252601f199092019160209182019101611697565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220805460ff1916931515939093179092555050505050565b600654600160a060020a031681565b600080600080611715612eb0565b5050600654600160a060020a039081166000908152600360208181526040808420898552825292839020835160a08101855281548082526001830154871693820184905260028301549096169481019490945291820154606084018190526004909201546080840181905293965094509250509193509193565b60036020818152600093845260408085209091529183529120805460018201546002830154938301546004909301549193600160a060020a039182169391169185565b6117da612eb0565b60015460a060020a900460ff16156117f157600080fd5b60065460408051602081019091526000815261181a91600160a060020a031690859085906123dd565b60208181015182516040805191825292810186905282519394503393600160a060020a039092169287927fedcc7e1c269bc295dc24e74dc46b129c8449e6b0544af73b57c4201b78d119db9281900390910190a4505050565b600154600160a060020a0316331461188a57600080fd5b600160a060020a038116151561189f57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360018054600160a060020a031916600160a060020a0392909216919091179055565b600061190f82600160a060020a0316612d39565b151561198a576040805160e560020a62461bcd028152602060048201526024808201527f546865204e465420416464726573732073686f756c64206265206120636f6e7460448201527f7261637400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50604080517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd00000000000000000000000000000000000000000000000000000000600482015290518291600160a060020a038316916301ffc9a7916024808201926020929091908290030181600087803b158015611a0f57600080fd5b505af1158015611a23573d6000803e3d6000fd5b505050506040513d6020811015611a3957600080fd5b50511515611ab7576040805160e560020a62461bcd02815260206004820152603560248201527f546865204e465420636f6e74726163742068617320616e20696e76616c69642060448201527f45524337323120696d706c656d656e746174696f6e0000000000000000000000606482015290519081900360840190fd5b5050565b611ac3612eb0565b611acb612eb0565b50600160a060020a0380841660009081526003602081815260408084208785528252808420815160a081018352815480825260018301548816948201949094526002820154909616918601919091529182015460608501526004909101546080840152819081901515611b88576040805160e560020a62461bcd02815260206004820152601360248201527f4173736574206e6f74207075626c697368656400000000000000000000000000604482015290519081900360640190fd5b6020840151600160a060020a0316331480611bad5750600154600160a060020a031633145b1515611c03576040805160e560020a62461bcd02815260206004820152601160248201527f556e617574686f72697a65642075736572000000000000000000000000000000604482015290519081900360640190fd5b50508151602080840151604080860151600160a060020a03808b16600090815260038087528482208c83528752848220828155600181018054600160a060020a03199081169091556002820180549091169055908101829055600401558251868152818316958101959095528251959650929490939285169289927f0325426328de5b91ae4ad8462ad4076de4bcaf4551e81556185cacde5a425c6b92918290030190a3509195945050505050565b6000806000611cc0876118fb565b86925082600160a060020a0316636352211e876040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611d0c57600080fd5b505af1158015611d20573d6000803e3d6000fd5b505050506040513d6020811015611d3657600080fd5b5051915033600160a060020a03831614611d9a576040805160e560020a62461bcd02815260206004820181905260248201527f4f6e6c7920746865206f776e65722063616e20637265617465206f7264657273604482015290519081900360640190fd5b30600160a060020a031683600160a060020a031663081812fc886040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611ded57600080fd5b505af1158015611e01573d6000803e3d6000fd5b505050506040513d6020811015611e1757600080fd5b5051600160a060020a03161480611ec15750604080517fe985e9c5000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015230602483015291519185169163e985e9c5916044808201926020929091908290030181600087803b158015611e9457600080fd5b505af1158015611ea8573d6000803e3d6000fd5b505050506040513d6020811015611ebe57600080fd5b50515b1515611f3d576040805160e560020a62461bcd02815260206004820152603260248201527f54686520636f6e7472616374206973206e6f7420617574686f72697a6564207460448201527f6f206d616e616765207468652061737365740000000000000000000000000000606482015290519081900360840190fd5b60008511611f95576040805160e560020a62461bcd02815260206004820152601d60248201527f50726963652073686f756c6420626520626967676572207468616e2030000000604482015290519081900360640190fd5b611fa642603c63ffffffff612e5316565b8411612022576040805160e560020a62461bcd02815260206004820152603660248201527f5075626c69636174696f6e2073686f756c64206265206d6f7265207468616e2060448201527f31206d696e75746520696e207468652066757475726500000000000000000000606482015290519081900360840190fd5b60408051426020808301919091526c01000000000000000000000000600160a060020a03808716820284860152605484018b90528b1602607483015260888083018990528351808403909101815260a890920192839052815191929182918401908083835b602083106120a65780518252601f199092019160209182019101612087565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060a0604051908101604052808260001916815260200183600160a060020a0316815260200188600160a060020a03168152602001868152602001858152506003600089600160a060020a0316600160a060020a0316815260200190815260200160002060008881526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555060408201518160020160006101000a815481600160a060020a030219169083600160a060020a031602179055506060820151816003015560808201518160040155905050600060055411156122f857600254600154600554604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03938416602482015260448101929092525191909216916323b872dd9160648083019260209291908290030181600087803b15801561225057600080fd5b505af1158015612264573d6000803e3d6000fd5b505050506040513d602081101561227a57600080fd5b505115156122f8576040805160e560020a62461bcd02815260206004820152603f60248201527f5472616e73666572696e6720746865207075626c69636174696f6e206665652060448201527f746f20746865204d61726b6574706c616365206f776e6572206661696c656400606482015290519081900360840190fd5b60408051828152600160a060020a0389811660208301528183018890526060820187905291519184169188917f84c66c3f7ba4b390e20e8e8233e2a516f3ce34a72749e4f12bd010dfba238039919081900360800190a350505050505050565b6123628282610e4f565b15611ab7576040805160e560020a62461bcd02815260206004820152603260248201527f52657175657374656420746172676574206d6967726174696f6e20494420686160448201527f7320616c7265616479206265656e2072756e0000000000000000000000000000606482015290519081900360840190fd5b6123e5612eb0565b60006123ef612eb0565b60008060006123fd8a6118fb565b604080517f76657269667946696e6765727072696e742875696e743235362c6279746573298152815190819003602090810182207f01ffc9a70000000000000000000000000000000000000000000000000000000083527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600483015291518c9750600160a060020a038816926301ffc9a792602480820193918290030181600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050506040513d60208110156124d557600080fd5b50511561264e57604080517f8f9f4b63000000000000000000000000000000000000000000000000000000008152600481018b815260248201928352895160448301528951600160a060020a03891693638f9f4b63938e938d9390929160640190602085019080838360005b83811015612559578181015183820152602001612541565b50505050905090810190601f1680156125865780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156125a657600080fd5b505af11580156125ba573d6000803e3d6000fd5b505050506040513d60208110156125d057600080fd5b5051151561264e576040805160e560020a62461bcd02815260206004820152602260248201527f5468652061737365742066696e6765727072696e74206973206e6f742076616c60448201527f6964000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03808b1660009081526003602081815260408084208e8552825292839020835160a081018552815480825260018301548716938201939093526002820154909516938501939093529082015460608401526004909101546080830152909450151561270a576040805160e560020a62461bcd02815260206004820152601360248201527f4173736574206e6f74207075626c697368656400000000000000000000000000604482015290519081900360640190fd5b60208401519250600160a060020a0383161515612771576040805160e560020a62461bcd02815260206004820152600f60248201527f496e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314156127d2576040805160e560020a62461bcd02815260206004820152601160248201527f556e617574686f72697a65642075736572000000000000000000000000000000604482015290519081900360640190fd5b6060840151881461282d576040805160e560020a62461bcd02815260206004820152601860248201527f546865207072696365206973206e6f7420636f72726563740000000000000000604482015290519081900360640190fd5b60808401514210612888576040805160e560020a62461bcd02815260206004820152601160248201527f546865206f726465722065787069726564000000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a0316636352211e8a6040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156128d157600080fd5b505af11580156128e5573d6000803e3d6000fd5b505050506040513d60208110156128fb57600080fd5b5051600160a060020a03848116911614612985576040805160e560020a62461bcd02815260206004820152602160248201527f5468652073656c6c6572206973206e6f206c6f6e67657220746865206f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50508151600160a060020a03891660009081526003602081815260408084208c85529091528220828155600181018054600160a060020a03199081169091556002820180549091169055908101829055600490810182905554909190821015612b3257612a10620f4240612a046004548b612e6090919063ffffffff16565b9063ffffffff612e8916565b600254600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0392831660248201526044810185905290519395509116916323b872dd916064808201926020929091908290030181600087803b158015612a8a57600080fd5b505af1158015612a9e573d6000803e3d6000fd5b505050506040513d6020811015612ab457600080fd5b50511515612b32576040805160e560020a62461bcd02815260206004820152603360248201527f5472616e73666572696e67207468652063757420746f20746865204d61726b6560448201527f74706c616365206f776e6572206661696c656400000000000000000000000000606482015290519081900360840190fd5b600254600160a060020a03166323b872dd3385612b558c8763ffffffff612e9e16565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015612ba957600080fd5b505af1158015612bbd573d6000803e3d6000fd5b505050506040513d6020811015612bd357600080fd5b50511515612c51576040805160e560020a62461bcd02815260206004820152603060248201527f5472616e73666572696e67207468652073616c6520616d6f756e7420746f207460448201527f68652073656c6c6572206661696c656400000000000000000000000000000000606482015290519081900360840190fd5b604080517f42842e0e000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152336024830152604482018c90529151918716916342842e0e9160648082019260009290919082900301818387803b158015612cc257600080fd5b505af1158015612cd6573d6000803e3d6000fd5b505060408051848152600160a060020a038e811660208301528183018d9052915133945091871692508c917f695ec315e8a642a74d450a4505eeea53df699b47a7378c7d752e97d5b16eb9bb9181900360600190a4509198975050505050505050565b6000903b1190565b6040805190810160405280600781526020017f4f776e61626c65000000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e30000000000000000000000000000000000000000000000000000000815250612dda826040805190810160405280600b8152602001600080516020612eff833981519152815250612358565b612de48282612358565b60018054600160a060020a031916600160a060020a038516179055604080518181528351918101919091528251600080516020612edf8339815191529184918491908190602080830191606084019187019080838360008381101561149f578181015183820152602001611487565b81810182811015610f1257fe5b6000821515612e7157506000610f12565b50818102818382811515612e8157fe5b0414610f1257fe5b60008183811515612e9657fe5b049392505050565b600082821115612eaa57fe5b50900390565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152905600dd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea3696e697469616c697a6564000000000000000000000000000000000000000000a165627a7a7230582036c7967ac0c58341581c36bf16c11cd79c9ae1b889c361b79c7bd26edae38f2f0029") as any;
    }
}
export var MarketplaceAbi = abi;
